﻿using System;

namespace devtm.CommonInteractive.CodeParser
{

    public interface ITypeStructure : IMemberStructure
    {
        IMemberStructure BaseType { get; set; }
        string GetFullname();
        string GetNamespace();
        bool IsAbstract { get; set; }
        bool IsAnonymousType { get; set; }
        bool IsArray { get; set; }
        bool IsClass { get; set; }
        bool IsConstructed { get; set; }
        bool IsContravariant { get; set; }
        bool IsCovariant { get; set; }
        bool IsDelegate { get; set; }
        bool IsDynamic { get; set; }
        bool IsEnum { get; set; }
        bool IsInterface { get; set; }
        bool IsInternal { get; set; }
        bool IsNested { get; set; }
        bool IsPointer { get; set; }
        bool IsPredefinedType { get; set; }
        bool IsPrivate { get; set; }
        bool IsProtected { get; set; }
        bool IsProtectedOrInternal { get; set; }
        bool IsPublic { get; set; }
        bool IsReferenceType { get; set; }
        bool IsSealed { get; set; }
        bool IsStatic { get; set; }
        bool IsStruct { get; set; }
        bool IsTypeParameter { get; set; }
        bool IsUnknown { get; set; }
        bool IsValueType { get; set; }
        IMemberStructure UnderlyingType { get; set; }
    }

}
